Now Loading ...
-
Introduction
컴퓨터 네트워크
컴퓨터와 프린터, 스마트폰과 같은 기타 장치들이 서로 통신할 수 있도록 연결한 집합이다.
통신을 위해 컴퓨터와 장치는 정보 전송을 지원하는 물리적 매체로 연결되어야한다.
구리 케이블 및 광섬유와 같은 유선 매체와 무선 주파수 매체를 포함하여 물리적 매체에 대한 다양한 기술이 개발되었다.
컴퓨터는 다양한 네트워크 토폴로지로 매체에 연결될 수 있다.
네트워크를 통신하기 위해 컴퓨터는 사용되는 매체와 상관없이 통신 프로토콜이라는 합의된 규칙을 사용한다.
컴퓨터 네트워크에는 개인용 컴퓨터, 서버, 네트워킹 하드웨어 또는 기타 특수 목적 또는 일반 목적을 호스트가 포함될 수 있다.
이들은 네트워크 주소로 식별되며 호스트명을 가질 수 있다.
호스트명은 노드에 대한 기억하기 쉬운 레이블 역할을 하며 초기 할당 후에는 거의 변경되지 않는다.
네트워크 주소는 인터넷 프로토콜과 같은 통신 프로토콜에 의해 노드를 찾고 식별하는 데 사용된다.
네트워크 패킷
대부분의 최신 컴퓨터 네트워크는 패킷 모드 전송을 기반으로 하는 프로토콜을 사용한다.
네트워크 패킷은 교환 네트워크에서 전송되는 형식화된 데이터 단위이다.
패킷은 제어 정보와 사용자 데이터(Payload)의 두 가지 유형의 데이터로 구성된다.
제어 정보는 네트워크가 사용자 데이터를 전달하는 데 필요한 데이터를 제공한다.
예를 들어, 소스 및 대상 네트워크 주소, 오류 감지 코드 및 시퀀싱 정보 등이 있다.
일반적으로 패킷 헤더 및 트레일러에 있으며, 사용자 데이터(Payload)는 그 사이에 있다.
패킷을 사용하면 네트워크가 회선 교환되는 경우보다 전송 매체의 대역폭을 사용자 간에 더 잘 공유할 수 있다.
OSI 7 Layer
Layer
Protocol Data Unit(PDU)
e.g.
Function
Host Layer
7
Application Layer
Data
HTTP, SMTP, SNMP, FTP, TELNET, NFS, NTP
리소스 공유나 원격 파일 접근을 위한 고급 프로토콜
Host Layer
6
Presentation Layer
Data
ASCII, MIDI, MPEG
네트워킹 서비스와 애플리케이션 간 데이터 변환 (문자 인코딩, 데이터 압축, 암호화/복호화)
Host Layer
5
Session Layer
Data
FIFO, NetBIOS, SSL, TLS
통신 세션 관리, 즉 두 노드 간의 여러 번의 왕복 전송 형태로 정보를 지속적으로 교환하는 것
Host Layer
4
Transport Layer
Segment
TCP, UDP, RTP, SCTP
패킷 분할, ACK 및 멀티플렉싱를 포함하여 네트워크의 지점 간 데이터 세그먼트의 안정적인 전송
Media Layer
3
Network Layer
Packet, Datagram
IP, ICMP, IPsec
Addressing, Routing, Traffic Control을 포함한 다중 노드 네트워크 구조화 및 관리
Media Layer
2
Data Link Layer
Frame
Ethernet
물리적 계층으로 연결된 두 노드 간 데이터 프레임 전송
Media Layer
1
Physical Layer
Bit, Symbol
X.25, RS-232
물리적 매체를 통한 원시 비트 스트림의 전송 및 수신
브리지 및 스위치
브리지와 스위치는 통신에 관련된 포트로만 프레임을 전달한다.
브리지는 두 개의 포트만 있지만, 스위치는 일반적으로 수많은 포트를 가지고 있어 장치에 대한 스타 토폴로지를 용이하게 하고 추가 스위치를 계단식으로 연결할 수 있다.
브리지와 스위치는 OSI 모형의 데이터 링크 계층(2 Layer)에서 작동하며 두 개 이상의 네트워크 세그먼트 간의 트래픽을 브리지하여 단일 로컬 네트워크를 형성한다.
브리지와 스위치는 네트워크의 충돌 도메인을 분할하지만 단일 브로드캐스트 도메인을 유지한다. 브리징 및 스위칭을 통한 네트워크 세분화는 크고 혼잡한 네트워크를 더 작고 효율적인 네트워크의 집합으로 분해하는 데 도움이 된다.
라우터
라우터는 패킷에 포함된 주소 지정 또는 라우팅 정보를 처리하여 네트워크 간에 패킷을 전달하는 인터네트워킹 장치이다. 라우팅 정보는 종종 라우팅 테이블과 함께 처리된다.
라우터는 라우팅 테이블을 사용하여 전달할 위치를 결정한다.
방화벽
방화벽은 네트워크 보안 및 엑세스 규칙을 제어하는 네트워크 장치 또는 소프트웨어이다.
방화벽은 내부 네트워크와 인터넷과 같은 잠재적으로 안전하지 않은 외부 네트워크 간의 연결에 삽입된다.
방화벽은 일반적으로 인식되지 않는 소스에서의 엑세스 요청을 거부하고 인식된 소스에서의 작업을 허용하도록 구성된다.
점점 증가하는 사이버 공격 관련 이슈가 발생하는 현 시대에서 방화벽은 네트워크 보안에서 중요한 역할로 여겨지고 있다.
SSL(Secure Socket Layer)/TLS(Transport Layer Security)
SSL은 인증서가 있는 서버를 필요로 한다.
클라이언트가 SSL 보안 서버에 대한 엑세스를 요청하면 서버는 인증서 사본을 클라이언트에 보낸다.
SSL 클라이언트는 전달받은 인증서를 확인 후 검증되면 서버가 인증된다.
클라이언트는 세션에서 사용할 대칭 키 암호를 협상한다.
세션은 SSL 서버와 SSL 클라이언트 간의 매우 안전한 암호화된 터널에서 통신할 수 있게된다.
References
https://ko.wikipedia.org/wiki/%EC%BB%B4%ED%93%A8%ED%84%B0_%EB%A7%9D
https://ko.wikipedia.org/wiki/OSI_%EB%AA%A8%ED%98%95
-
네트워크 인프라 구성도 그리기
구성 요소별 핵심 역할
👨💻 사용자 (Client)
웹 브라우저를 통해 서비스에 접속하는 최종 사용자입니다.
🌐 도메인 등록 및 DNS 서버
사용자가 도메인 주소(예: www.your-service.com)를 입력하면, 해당 주소를 클라우드 플랫폼의 서버 IP 주소로 변환하여 연결해주는 역할을 합니다.
☁️ 클라우드 플랫폼
VPC (Virtual Private Cloud): 클라우드 플랫폼 내에 생성된 논리적으로 분리된 가상의 네트워크 공간입니다. 외부로부터 격리되어 있어 보안이 강화됩니다.
로드 밸런서 (Load Balancer): 사용자의 요청(트래픽)을 여러 대의 웹 서버로 자동 분산하여 특정 서버에 과부하가 걸리는 것을 방지합니다. 이를 통해 서비스의 안정성을 높이고, SSL 인증서를 적용하여 HTTPS 통신을 처리합니다.
Public Subnet (외부망): 인터넷과 직접 통신이 가능한 영역입니다.
웹 서버 (Nginx): 프론트엔드 애플리케이션을 사용자에게 제공합니다. 정적 파일을 서빙하고, 사용자의 동적 요청을 내부망에 있는 WAS로 전달하는 리버스 프록시(Reverse Proxy)의 핵심 역할을 수행합니다. Docker 컨테이너로 배포됩니다.
Private Subnet (내부망): 인터넷에서 직접 접근할 수 없는 내부 네트워크 영역으로, 중요한 자원을 배치하여 보안을 강화합니다.
WAS: 백엔드 애플리케이션으로, 실제 비즈니스 로직을 처리하고 데이터베이스와 통신합니다. 웹 서버를 통해서만 요청을 받기 때문에 외부에 직접 노출되지 않아 안전합니다. 마찬가지로 Docker 컨테이너로 배포됩니다.
DB 서버: 서비스의 모든 데이터를 저장하고 관리하는 데이터베이스입니다. 클라우드 플랫폼의 관리형 서비스를 사용하거나, 서버에 Docker 컨테이너로 직접 구축할 수 있습니다. 가장 안쪽의 격리된 네트워크에 위치하며 오직 WAS의 요청에만 응답합니다.
데이터 흐름
DNS 조회: 사용자가 브라우저에 도메인 주소를 입력하면, DNS가 클라우드 플랫폼 로드 밸런서의 IP 주소를 알려줍니다.
요청 전달: 사용자의 요청은 클라우드 플랫폼의 로드 밸런서로 전달됩니다.
트래픽 분산: 로드 밸런서는 받은 요청을 Public Subnet에 있는 여러 웹 서버 중 하나로 전달합니다.
프론트엔드 서빙 및 API 요청: 웹 서버는 프론트 엔드 코드로 만들어진 화면을 사용자에게 보여줍니다. 만약 데이터 처리가 필요하면(예: 로그인, 게시글 조회), 웹 서버는 해당 요청을 Private Subnet에 있는 WAS로 전달합니다.
비즈니스 로직 처리: WAS는 요청을 받아 비즈니스 로직을 수행하고, 필요시 DB 서버에 데이터 조회를 요청합니다.
데이터 응답: DB 서버는 WAS의 요청을 처리한 후 결과를 반환합니다.
API 응답: WAS는 DB에서 받은 데이터를 가공하여 웹 서버로 최종 결과를 전달합니다.
최종 렌더링: 웹 서버는 WAS로부터 받은 데이터를 포함하여 사용자에게 최종 화면을 보여줍니다.
보안/네트워킹 권장 설정
VPC 분리: 퍼블릭 서브넷, 프라이빗 서브넷
SG(Security Group): 최소 포트만 허용
LB→Web Server: 443/80(내부)
Web Server→WAS: 8080(내부)
WAS→DB: 3306(내부)
HTTPS 강제 및 HSTS, 보안 헤더(Content-Security-Policy 등) 적용
DB 프라이빗 접속만 허용, 백업/복제/모니터링
배포 파이프라인(예시)
CI: 테스트 → Docker 이미지 빌드 → 취약점 스캔 → 레지스트리에 push
CD: 서버/쿠버네티스에 배포, 헬스체크 후 트래픽 전환(블루/그린 또는 롤링)
포트/엔드포인트 요약
외부: 443(HTTPS) → LB → Web Server
내부: 8080(WAS), 3306(DB)
관리: SSH는 Bastion Host 또는 SSM 계열 툴로 제한적 허용
운영 모니터링
애플리케이션: Prometheus + Grafana, Spring Actuator
인프라: Cloud Platform Monitoring, 로드밸런서/네트워크 지표, 로그 수집(ELK/EFK)
-
메시지 교환 방식
네트워크로 메시지를 주고받는 방식은 대표적으로 회선 교환 방식과 패킷 교환 방식으로 나눌 수 있다.
각 방식을 사용하는 네트워크를 각각 회선 교환 네트워크, 패킷 교환 네트워크라고 한다.
회선 교환 방식 (Circuit Switching)
회선 교환 방식은 먼저 메시지 전송로인 회선을 설정하고 이를 통해 메시지를 주고 받는 방식이다.
회선 교환 네트워크에서는 호스트들이 메시지를 주고받기 전에 두 호스트를 연결한 후, 연결된 경로로 메세지를 주고 받는다.
회선 교환 방식은 우선 두 호스트 사이에 연결을 확보한 후에 메시지를 주고 받는 특성 덕분에 주어진 시간 동안 전송되는 정보의 양이 비교적 일정하다는 장점이 있다.
회선 교환 네트워크가 올바르게 동작하기 위해서는 호스트 간의 회선을 적절하게 설정해야 한다.
이 역할을 수행하는 회선 교환 네트워크 장비로는 회선 스위치가 있다. 즉, 회선 스위치는 호스트 사이에 일대일 전송로를 확보하는 네트워크 장비이다.
전통적인 전화망이 회선 교환 방식의 대표적인 사례이다.
누군가에게 전화를 걸면 수신자가 전화를 받기 전에 송신자와 수신자 사이에 연결이 설정되어야 하고, 한번 연결이 설정되면 연결된 전송로를 통해서만 통화가 가능해진다.
회선 교환 방식에는 회선의 이용 효율이 낮아질 수 있다는 단점이 존재한다.
가능한 모든 회선에 끊임없이 메시지가 흐르고 있어야만 회선의 이용 효율이 높아진다. 즉, 메시지를 주고 받지 않으면서 회선을 점유하고 있다면 낭비라 여겨진다.
패킷 교환 방식 (Packet Switching)
패킷 교환 방식은 회선 교환 방식의 문제점을 해결한 방식으로, 메시지를 패킷이라는 작은 단위로 쪼개어 전송한다.
패킷은 패킷 교환 네트워크 상에서 송수신되는 메시지의 단위입니다.
패킷 교환 네트워크는 회선 교환 네트워크와는 달리 메시지를 송수신하는 두 호스트가 하나의 전송 경로를 점유하지 않기에 네트워크 이용 효율이 상대적으로 높다.
사전에 설정된 경로만으로 통신하는 회선 교환 방식과는 달리, 패킷 교환 방식은 정해진 경로만으로 메시지를 송수신하지 않는다.
이 과정에서 메시지는 다양한 중간 노드를 거칠 수 있는데, 이때 중간 노드인 패킷 스위치는 패킷이 수신지까지 올바르게 도달할 수 있도록 최적의 경로를 결정하거나 패킷의 송수신지를 식별합니다. 대표적인 패킷 스위치는 네트워크 장비로는 라우터, 스위치가 있다.
패킷을 통해 전송하고자 하는 데이터를 Payload라고 한다.
Payload와 더불어 header라는 정보도 패킷 앞에 포함된다.
때로는 패킷 뒤에 trailer라는 정보가 포함되기도 한다.
헤더와 트레일러는 패킷에 붙는 일종의 부가 정보. 즉, 제어 정보이다.
패킷 교환 네트워크에서 주고 받는 메시지의 단위는 패킷이며, 패킷은 전송하고자 하는 데이터인 페이로드와 부가 정보인 헤더 및 트레일러로 구성된다.
Refenrences
https://hongong.hanbit.co.kr/network-%ED%9A%8C%EC%84%A0-%EA%B5%90%ED%99%98-%EB%B0%A9%EC%8B%9D%EA%B3%BC-%ED%8C%A8%ED%82%B7-%EA%B5%90%ED%99%98-%EB%B0%A9%EC%8B%9D/
Touch background to close